iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0

在做xgboost之前,資料處理是非常重要的。因為方法基本上在網路上找到的都差不多,所以在放比較多的重點在資料上。

尤其是日期(要看懂資料在幹嘛然後釐清他)跟資料不平衡(SMOTE)。

我使用的方法是one hard encoding , 在做one hard的時候,有一個地方我覺得是資料處理時遇到花最久時間去思考的地方,就是不能將train跟test資料分開做parse.model.matrix( ~ .-1, data = fraud_train),,因為有可能你的訓練資料集有些變數跟本沒在測試資料集出現,會導致你最後要做預測的時候,他會跟你說資料長度不符合導致無法執行最後最重要的預測,說白了,你的訓練模型其實有一點點依賴你的測試資料,可能必須跟著測試資料有所改動。

然後如果遇到流水號的話,建議先剔除在開始做parse.model.matrix,不然會出現很多不必要的行列,流水號的資料不會增強你的模型,只會拖累運算速度而已。

xdata_all = sparse.model.matrix(  ~ .-1, data = fraud_train_test)
ncol(xdata_all)
nrow(xdata_all)

xdata__ = xdata_all[1:nrow(xdata),]
ncol(xdata__)
xdata_test__ = xdata_all[(nrow(xdata)+1):nrow(xdata_all),]
ncol(xdata_test__)


上一篇
R語言_一言不合就xgboost_1
下一篇
R語言_SMOTE不平衡數據
系列文
R語言 - 從「主觀感覺」轉為「客觀事實」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言